package com.itheima.service;

import com.itheima.mapper.BrandMapper;
import com.itheima.pojo.Brand;
import com.itheima.pojo.BrandPageBean;
import com.itheima.util.Dao;

import java.util.List;

/**
 * 业务层
 */
public class BrandService {

    //使用动态代理创建BrandMapper
    private final BrandMapper brandMapper = Dao.getMapper(BrandMapper.class);

    /**
     * 查询所有的品牌
     */
    public List<Brand> selectAll() {
        return brandMapper.selectAll();
    }

    /**分页查询
     *
     * @param brand 当前页面的查询条件
     * @param pageSize 当前页面显示的数据的条数
     * @param pageIndex 当前页面的页码
     * @return 返回页面对象
     */
    public BrandPageBean selectByPag(Brand brand,int pageSize,int pageIndex){
        //1.通过页面计算出当前页面开始的位置  跳过多少条数据
        int start = (pageIndex - 1)*pageSize;
        //2.调用dao层的方法查出符合当前页面条件的全部品牌信息
        List<Brand> brands = brandMapper.selectByPage(start, pageSize, brand);
        //3.调用dao层查出符合条件的全部品牌的条数
        int total = brandMapper.selectTotal(brand);
        //4.封装成pageBean对象返回
        return new BrandPageBean(brands,total);
    }

    //搜索
    public List<Brand> selectByBrand(Brand brand) {
        return brandMapper.selectByBrand(brand);
    }

    /**
     * 添加品牌
     */
    public int add(Brand brand) {
        return brandMapper.add(brand);
    }

    /**
     * 回显品牌
     */
    public Brand selectById(Integer id) {
        return brandMapper.selectById(id);
    }

    /**
     * 更新
     */
    public int update(Brand brand) {
        return brandMapper.update(brand);
    }

    //更新状态
    public void updateStatus(int id, int status){
        brandMapper.updateStatus(id,status);
    }

    /**
     * 删除
     */
    public int deleteById(Integer id) {
        return brandMapper.deleteById(id);
    }

    //批量删除
    public int deleteByIds(int[] ids) {
        return brandMapper.deleteByIds(ids);
    }
}
